#include <atomic>
#include <iostream>
#include <thread>

using namespace std;


atomic_int a(10);

void thread1(){
    cout << a.load(memory_order_acquire) << endl; 
}

void thread2(){
    a.store(20, memory_order_release);
}

int main(){
    thread t1(thread2);
    thread t2(thread1);

    t1.join();
    t2.join();

    int c = 1;
    int&& d = std::move(c);
    std::cout << c << std::endl;
}